// File:    Incidencia.cs
// Author:  bigmaster
// Created: viernes, 22 de noviembre de 2013 1:14:56
// Purpose: Definition of Class Incidencia

using System;

namespace ServiceDeskUNAB.Modelo
{
    public class Incidencia
    {
        private int idIncidencia;

        public int IdIncidencia
        {
            get { return idIncidencia; }
            set { idIncidencia = value; }
        }
        private string tituloIncidencia;

        public string TituloIncidencia
        {
            get { return tituloIncidencia; }
            set { tituloIncidencia = value; }
        }
        private string detallesIncidencia;

        public string DetallesIncidencia
        {
            get { return detallesIncidencia; }
            set { detallesIncidencia = value; }
        }
        private string reprodubicibilidadIncidencia;

        public string ReproducibilidadIncidencia
        {
            get { return reprodubicibilidadIncidencia; }
            set { reprodubicibilidadIncidencia = value; }
        }
        private string urgenciaIncidencia;

        public string UrgenciaIncidencia
        {
            get { return urgenciaIncidencia; }
            set { urgenciaIncidencia = value; }
        }
        private string severidadIncidencia;

        public string SeveridadIncidencia
        {
            get { return severidadIncidencia; }
            set { severidadIncidencia = value; }
        }
        private DateTime fechaCreacionIncidencia;

        public DateTime FechaCreacionIncidencia
        {
            get { return fechaCreacionIncidencia; }
            set { fechaCreacionIncidencia = value; }
        }
        private DateTime ultimaModificacionIncidencia;

        public DateTime UltimaModificacionIncidencia
        {
            get { return ultimaModificacionIncidencia; }
            set { ultimaModificacionIncidencia = value; }
        }
        private string prioridadIncidencia;

        public string PrioridadIncidencia
        {
            get { return prioridadIncidencia; }
            set { prioridadIncidencia = value; }
        }
        private string sistemaOperativoIncidencia;

        public string SistemaOperativoIncidencia
        {
            get { return sistemaOperativoIncidencia; }
            set { sistemaOperativoIncidencia = value; }
        }

        int estadoIncidencia;

        public int EstadoIncidencia
        {
            get { return estadoIncidencia; }
            set { estadoIncidencia = value; }
        }

        int encargadoIncidencia;

        public int EncargadoIncidencia
        {
            get { return encargadoIncidencia; }
            set { encargadoIncidencia = value; }
        }


        int proyectoIncidencia;

        public int ProyectoIncidencia
        {
            get { return proyectoIncidencia; }
            set { proyectoIncidencia = value; }
        }

        int creadorIncidencia;

        public int CreadorIncidencia
        {
            get { return creadorIncidencia; }
            set { creadorIncidencia = value; }
        }
        public Incidencia()
        {

        }
        public System.Collections.Generic.List<CategoriaIncidencia> categoriaIncidencia;

        /// <summary>
        /// Property for collection of CategoriaIncidencia
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<CategoriaIncidencia> CategoriaIncidencia
        {
            get
            {
                if (categoriaIncidencia == null)
                    categoriaIncidencia = new System.Collections.Generic.List<CategoriaIncidencia>();
                return categoriaIncidencia;
            }
            set
            {
                RemoveAllCategoriaIncidencia();
                if (value != null)
                {
                    foreach (CategoriaIncidencia oCategoriaIncidencia in value)
                        AddCategoriaIncidencia(oCategoriaIncidencia);
                }
            }
        }

        /// <summary>
        /// Add a new CategoriaIncidencia in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddCategoriaIncidencia(CategoriaIncidencia newCategoriaIncidencia)
        {
            if (newCategoriaIncidencia == null)
                return;
            if (this.categoriaIncidencia == null)
                this.categoriaIncidencia = new System.Collections.Generic.List<CategoriaIncidencia>();
            if (!this.categoriaIncidencia.Contains(newCategoriaIncidencia))
            {
                this.categoriaIncidencia.Add(newCategoriaIncidencia);
                newCategoriaIncidencia.AddIncidencia(this);
            }
        }

        /// <summary>
        /// Remove an existing CategoriaIncidencia from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveCategoriaIncidencia(CategoriaIncidencia oldCategoriaIncidencia)
        {
            if (oldCategoriaIncidencia == null)
                return;
            if (this.categoriaIncidencia != null)
                if (this.categoriaIncidencia.Contains(oldCategoriaIncidencia))
                {
                    this.categoriaIncidencia.Remove(oldCategoriaIncidencia);
                    oldCategoriaIncidencia.RemoveIncidencia(this);
                }
        }

        /// <summary>
        /// Remove all instances of CategoriaIncidencia from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllCategoriaIncidencia()
        {
            if (categoriaIncidencia != null)
            {
                System.Collections.ArrayList tmpCategoriaIncidencia = new System.Collections.ArrayList();
                foreach (CategoriaIncidencia oldCategoriaIncidencia in categoriaIncidencia)
                    tmpCategoriaIncidencia.Add(oldCategoriaIncidencia);
                categoriaIncidencia.Clear();
                foreach (CategoriaIncidencia oldCategoriaIncidencia in tmpCategoriaIncidencia)
                    oldCategoriaIncidencia.RemoveIncidencia(this);
                tmpCategoriaIncidencia.Clear();
            }
        }
        public System.Collections.Generic.List<ComentarioIncidencia> comentarioIncidencia;

        /// <summary>
        /// Property for collection of ComentarioIncidencia
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<ComentarioIncidencia> ComentarioIncidencia
        {
            get
            {
                if (comentarioIncidencia == null)
                    comentarioIncidencia = new System.Collections.Generic.List<ComentarioIncidencia>();
                return comentarioIncidencia;
            }
            set
            {
                RemoveAllComentarioIncidencia();
                if (value != null)
                {
                    foreach (ComentarioIncidencia oComentarioIncidencia in value)
                        AddComentarioIncidencia(oComentarioIncidencia);
                }
            }
        }

        /// <summary>
        /// Add a new ComentarioIncidencia in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddComentarioIncidencia(ComentarioIncidencia newComentarioIncidencia)
        {
            if (newComentarioIncidencia == null)
                return;
            if (this.comentarioIncidencia == null)
                this.comentarioIncidencia = new System.Collections.Generic.List<ComentarioIncidencia>();
            if (!this.comentarioIncidencia.Contains(newComentarioIncidencia))
                this.comentarioIncidencia.Add(newComentarioIncidencia);
        }

        /// <summary>
        /// Remove an existing ComentarioIncidencia from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveComentarioIncidencia(ComentarioIncidencia oldComentarioIncidencia)
        {
            if (oldComentarioIncidencia == null)
                return;
            if (this.comentarioIncidencia != null)
                if (this.comentarioIncidencia.Contains(oldComentarioIncidencia))
                    this.comentarioIncidencia.Remove(oldComentarioIncidencia);
        }

        /// <summary>
        /// Remove all instances of ComentarioIncidencia from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllComentarioIncidencia()
        {
            if (comentarioIncidencia != null)
                comentarioIncidencia.Clear();
        }
    }
}